
/*
 * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
 *
 * (b)  If this Sample Code is distributed as part of the Display PostScript
 *	System Software Development Kit from Adobe Systems Incorporated,
 *	then this copy is designated as Development Software and its use is
 *	subject to the terms of the License Agreement attached to such Kit.
 *
 * (c)  If this Sample Code is distributed independently, then the following
 *	terms apply:
 *
 * (d)  This file may be freely copied and redistributed as long as:
 *	1) Parts (a), (d), (e) and (f) continue to be included in the file,
 *	2) If the file has been modified in any way, a notice of such
 *      modification is conspicuously indicated.
 *
 * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
 *	Adobe Systems Incorporated.
 * 
 * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
 *	CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
 *	AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
 *	ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
 *	OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
 *	WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
 *	WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
 *	DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
 *	FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
 *	OF THIRD PARTY RIGHTS.
 */

/*
*	WorldView.m
* 
*	WorldView is a subclass of View.  It simply displays and clears a message in
*	the view. The one lesson this example shows is the modification of
*	"drawSelf::" and the call to "display".  The method, "drawSelf::", should
*	not be called directly. 
*
*	Rather, "display" should be called.  The display message performs
*	some necessary overhead such as bringing the View into focus by
*	constructing a clipping path around its frame rectangle and making its
*	coordinate system the current coordinate system for the application.  The
*	display method then messages drawSelf::.  These steps are repeated for
*	each of the View's subviews. 
*
*	Note:  Any instance variables that need to be initialized before the first display
*	should be done in the "init" or "initFrame:" method.  In this case,
*	drawHello is already a null value at its creation so no initialization
*	has to be performed.
*/

/*
*	Version:	2.0
*	Author:	Ken Fromm
*	History:
*			03-07-91		Added this comment.
*/

#import "WorldView.h"
#import <dpsclient/wraps.h>

@implementation WorldView

- drawHello:sender
{
	drawHello = YES;
	[self display];

	return self;
}

- clearHello:sender
{
	drawHello = NO;
	[self display];

	return self;
}

/* 
 * The first two lines clear the view,  The remaider display the
 * message in the view.
 */
- drawSelf:(NXRect *) r: (int) count
{
	PSsetgray (NX_LTGRAY);
	PSrectfill (bounds.origin.x, bounds.origin.y,
		bounds.size.width, bounds.size.height);

	if (drawHello)
	 {
		PSsetgray (NX_BLACK);
		PSmoveto (50.0, 70.0);
		PSselectfont ("Times-Roman", 40.0);
		PSshow ("Hello World");
	}
	return self;
}
@end
